/**
 * @Description:博客园地址：https://www.cnblogs.com/zumengjie/
 * @author:顶风少年
 * @date: 2021年4月1日 下午9:37:42
 */
package datang.dtdb.session;

import datang.dtdb.builder.xml.XMLConfigBuilder;
import datang.dtdb.io.Resources;
import datang.dtdb.session.defaults.DefaultSqlSessionFactory;

/**
 * 客户端入口通过此类获取SqlSessionFactory，通过工厂获取SqlSession
 */
public class SqlSessionFactoryBuilder {

	/**
	 * 接收ClassPath下的文件名，返回SqlSessionFactory在Mybatis中不支持直接接收字符串
	 */
	public SqlSessionFactory build(String resource) {
		// XMLConfigBuilder接收一个输入流，调用parse()返回一个Configuration对象。
		return build(new XMLConfigBuilder(Resources.getResourceAsStream(resource)).parse());
	}

	/**
	 * 通过Configuration获取默认的SqlSession工厂
	 */
	private SqlSessionFactory build(Configuration configuration) {
		// 使用Configuration构造默认的SqlSession工厂
		return new DefaultSqlSessionFactory(configuration);

	}
}
